جزوه · فصل پنجم · جلسه ۵۷ · راه‌اندازی Docker ← بازگشت به فهرست
📘 فصل پنجم · جلسه ۵۷ راه‌اندازی Docker
📅 تاریخ: چهارشنبه، ۲۸ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian · 📦 AlmaLinux
این جلسه یکی از مباحث عملی مهم در آزمون‌های لینوکس است. دستورات نصب در دبیان و الما را حتماً مقایسه کنید.
🐳 قبل از شروع، یه مثال ساده:

Docker را مثل یه کامیون حمل کانتینر تصور کن. هر کانتینر (Container) یه بار کوچک (برنامه) هست که همه چیز مورد نیازش (کتابخانه‌ها، تنظیمات) رو با خودش داره. Docker این کانتینرها رو روی سیستم شما اجرا می‌کنه، بدون اینکه به بقیه سیستم کاری داشته باشه. توی این جلسه، یاد می‌گیری چطور این کامیون (Docker) رو روی سیستمت نصب کنی!

▍ Docker چیست؟

Docker یک پلتفرم متن‌باز برای اجرای برنامه‌ها در کانتینرها است. کانتینرها مانند ماشین‌های مجازی سبک‌وزن هستند که برنامه و تمام وابستگی‌های آن را با هم打包 می‌کنند، اما برخلاف VMها، هسته سیستم‌عامل میزبان را به اشتراک می‌گذارند و بسیار سریع‌تر اجرا می‌شوند.

🔑 مزایای Docker:
  • سبک و سریع: کانتینرها در چند ثانیه اجرا می‌شوند.
  • قابل حمل (Portable): برنامه در هر سیستمی که Docker داشته باشد، اجرا می‌شود.
  • ایزوله (Isolated): هر کانتینر محیط مخصوص خود را دارد.
  • مدیریت آسان: با دستورات ساده می‌توان کانتینرها را ساخت، اجرا و حذف کرد.

▍ نصب Docker روی Debian

• پیش‌نیازها

برای نصب Docker روی دبیان، به یکی از نسخه‌های زیر نیاز دارید[reference:0]:

• مرحله ۱: حذف بسته‌های قدیمی

قبل از نصب، بسته‌های غیررسمی Docker را حذف کنید تا با نسخه رسمی تداخل نکنند[reference:1]:

┌──(ya3in㉿kali)-[~] └─$ sudo apt remove docker.io docker-compose docker-doc podman-docker

توضیح: این دستور بسته‌های قدیمی Docker را که ممکن است با نسخه رسمی تداخل داشته باشند، حذف می‌کند[reference:2].

بسته‌های متضاد در دبیان: docker.io، docker-compose، docker-doc و podman-docker هستند[reference:3].

• مرحله ۲: نصب پیش‌نیازها

┌──(ya3in㉿kali)-[~] └─$ sudo apt update └─$ sudo apt install ca-certificates curl

توضیح: ca-certificates برای اعتبارسنجی گواهی‌ها و curl برای دانلود کلید GPG استفاده می‌شود.

• مرحله ۳: افزودن کلید GPG رسمی Docker

┌──(ya3in㉿kali)-[~] └─$ sudo install -m 0755 -d /etc/apt/keyrings └─$ sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc └─$ sudo chmod a+r /etc/apt/keyrings/docker.asc

توضیح: کلید GPG برای تأیید صحت بسته‌های Docker استفاده می‌شود[reference:4].

• مرحله ۴: افزودن مخزن Docker به APT

┌──(ya3in㉿kali)-[~] └─$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

توضیح: این دستور مخزن رسمی Docker را به لیست مخازن APT اضافه می‌کند[reference:5][reference:6].

مخزن Docker در دبیان: https://download.docker.com/linux/debian

• مرحله ۵: نصب Docker Engine

┌──(ya3in㉿kali)-[~] └─$ sudo apt update └─$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

توضیح: این دستور Docker Engine و اجزای اصلی آن را نصب می‌کند[reference:7][reference:8].

بسته‌های اصلی Docker: docker-ce (موتور)، docker-ce-cli (خط فرمان)، containerd.io (اجرای کانتینرها)[reference:9].

• مرحله ۶: راه‌اندازی و فعال‌سازی Docker

┌──(ya3in㉿kali)-[~] └─$ sudo systemctl enable docker --now

توضیح: enable Docker را برای شروع خودکار در بوت فعال می‌کند و --now آن را بلافاصله راه‌اندازی می‌کند.

• مرحله ۷: تأیید نصب

┌──(ya3in㉿kali)-[~] └─$ sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly.

توضیح: این دستور یک کانتینر تست را دانلود و اجرا می‌کند. اگر پیام خوش‌آمدگویی را مشاهده کردید، نصب با موفقیت انجام شده است[reference:10][reference:11].

دستور تأیید نصب Docker: sudo docker run hello-world[reference:12]

▍ نصب Docker روی AlmaLinux

• پیش‌نیازها

Docker در مخازن پیش‌فرض AlmaLinux موجود نیست و باید از مخزن رسمی Docker نصب شود[reference:13].

• مرحله ۱: حذف بسته‌های متضاد

اگر Podman یا Buildah نصب دارید، آنها را حذف کنید تا با Docker تداخل نداشته باشند[reference:14]:

┌──(user㉿almalinux)-[~] └─$ sudo dnf remove -y podman buildah └─$ sudo dnf remove -y docker docker-common docker-selinux docker-engine

توضیح: Podman و Buildah با Docker تداخل دارند و باید حذف شوند[reference:15][reference:16].

در الما، بسته‌های podman و buildah با Docker تداخل دارند و باید حذف شوند[reference:17].

• مرحله ۲: نصب پیش‌نیازها

┌──(user㉿almalinux)-[~] └─$ sudo dnf install -y dnf-plugins-core

توضیح: dnf-plugins-core برای استفاده از دستور config-manager لازم است[reference:18][reference:19].

• مرحله ۳: افزودن مخزن رسمی Docker

از مخزن CentOS استفاده می‌شود زیرا الما با آن کاملاً سازگار است[reference:20]:

┌──(user㉿almalinux)-[~] └─$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

توضیح: این دستور مخزن رسمی Docker را به لیست مخازن DNF اضافه می‌کند[reference:21][reference:22].

مخزن Docker در الما: https://download.docker.com/linux/centos/docker-ce.repo[reference:23]

• مرحله ۴: نصب Docker Engine

┌──(user㉿almalinux)-[~] └─$ sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

توضیح: این دستور Docker Engine و اجزای اصلی آن را نصب می‌کند[reference:24][reference:25].

در الما از dnf به جای apt استفاده می‌شود. بسته‌ها مشابه دبیان هستند.

• مرحله ۵: راه‌اندازی و فعال‌سازی Docker

┌──(user㉿almalinux)-[~] └─$ sudo systemctl enable docker --now

توضیح: Docker را فعال کرده و بلافاصله راه‌اندازی می‌کند[reference:26].

• مرحله ۶: تأیید نصب

┌──(user㉿almalinux)-[~] └─$ sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly.

توضیح: مانند دبیان، این دستور نصب را تأیید می‌کند[reference:27].

دستور تأیید نصب در هر دو توزیع یکسان است: sudo docker run hello-world

▍ اضافه کردن کاربر به گروه Docker (اختیاری)

برای اجرای دستورات Docker بدون نیاز به sudo، کاربر خود را به گروه docker اضافه کنید:

┌──(ya3in㉿kali)-[~] └─$ sudo usermod -aG docker $USER

توضیح: usermod -aG کاربر فعلی را به گروه docker اضافه می‌کند[reference:28].

⚠️ توجه: پس از اجرای این دستور، برای اعمال تغییرات باید از سیستم خارج و دوباره وارد شوید (Logout & Login).

▍ مقایسه نصب در دبیان و الما

مرحله Debian AlmaLinux
مدیر بسته apt dnf
مخزن Docker https://download.docker.com/linux/debian https://download.docker.com/linux/centos/docker-ce.repo
پیش‌نیاز ca-certificates curl dnf-plugins-core
حذف بسته‌های متضاد docker.io docker-compose docker-doc podman-docker podman buildah docker docker-common
نصب Docker docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
تفاوت اصلی در مدیر بسته (apt در دبیان، dnf در الما) و مخزن Docker است.

▍ دستورات مدیریت Docker

دستور توضیح
sudo systemctl status docker بررسی وضعیت سرویس Docker
sudo systemctl stop docker توقف سرویس Docker
sudo systemctl start docker شروع سرویس Docker
sudo systemctl restart docker راه‌اندازی مجدد Docker
docker --version نمایش نسخه Docker
docker info نمایش اطلاعات کامل Docker
✅ جمع‌بندی نهایی برای امتحان:
  • Debian: apt + مخزن .../debian + کلید GPG
  • AlmaLinux: dnf + مخزن .../centos + dnf-plugins-core
  • بسته‌های اصلی: docker-ce، docker-ce-cli، containerd.io
  • پلاگین‌ها: docker-buildx-plugin و docker-compose-plugin
  • دستور تأیید نصب: sudo docker run hello-world
  • اجرای بدون sudo: sudo usermod -aG docker $USER